package com.joker.demo.admin.service;


import com.joker.demo.admin.domain.po.JobGroupPO;
import com.joker.demo.admin.domain.po.JobInfoPO;
import com.joker.demo.core.domain.dto.TaskExecuteRequestDTO;

import java.util.List;
import java.util.Map;

/**
 * @author : feixiang.li
 * @since : 2025-07-25 17:51
 */
public interface JobGroupService {

    /**
     * 获取需要执行的任务组的信息
     *
     * @param jobGroupNames 任务组名称
     * @return 任务组信息
     */
    Map<String, JobGroupPO> getJobGroupMap(List<String> jobGroupNames);

    /**
     * 获取任务组下的所有地址
     *
     * @param jobGroupName 任务组名称 job名称+任务组名称
     * @return 地址列表
     */
    List<String> getAddressList(String jobGroupName);

    /**
     * 获取可以运行的任务组下的所有地址
     *
     * @param jobInfo 请求地址
     * @return 地址列表
     */
    String getAddressList(JobInfoPO jobInfo);


    /**
     * 获取地址列表
     *
     * @param routeStrategy 路由策略
     * @param addressList   需要获取的
     * @param jobId         jobId
     * @return 运行的地址
     */
    String getAddressList(Integer routeStrategy, String addressList,Long jobId);

    /**
     * 获取可以运行任务组下的所有地址
     *
     * @param jobInfoList 需要获取的地址的jobId
     * @return 地址列表
     */
    Map<Long, String> getAddressList(List<JobInfoPO> jobInfoList);
}
